package com.yimu.dlutlogin; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.NetworkInfo; import android.net.NetworkInfo.State; import android.net.wifi.WifiManager; import android.os.Parcelable; import android.util.Log; import android.widget.Toast; /** * 网络状态改变时接收广播并启动主服务 * * @author Administrator */ public class WifiReceiver extends BroadcastReceiver { public static final String WIFI_SSID = "DLUT"; public void onReceive(Context ctx, Intent intent) { if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(intent.getAction())) {// 这个监听wifi的连接状态 //Log.i("receiver","NETWORK_STATE_CHANGED_ACTION"); Parcelable parcelableExtra = intent .getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); if (null != parcelableExtra) { NetworkInfo networkInfo = (NetworkInfo) parcelableExtra; State state = networkInfo.getState(); if (state == State.CONNECTED) { // 表示wifi状态改变 Log.i("receiver", "wifi状态改变"); WifiAdmin wifiAdmin = new WifiAdmin(ctx); String ssidName = wifiAdmin.getSSID(); Log.i("receiver connect to:", ssidName); boolean isSaved = SpUtil.getSp(ctx).getBoolean("isSaved",false); // 判断是否连接了DLUT if (isSaved && ssidName.contains(WIFI_SSID) && SpUtil.getLoginState(ctx) == false) { Toast.makeText(ctx,"连接DLUT中...",Toast.LENGTH_SHORT).show(); ctx.startService(new Intent(ctx, MyService.class)); } } else if (state == State.DISCONNECTED) { SpUtil.setLoginState(ctx,false); ctx.sendBroadcast(new Intent(UiReceiver.ACTION_UPDATE_UI)); } } } } }